Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

first pass at generating stacking tabs #122

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

rpedde
Copy link
Contributor

@rpedde rpedde commented Jul 20, 2023

This is a bit hacky, but represents a proof of concept for trying to make the sort of stacking tabs discussed in #81

@rpedde
Copy link
Contributor Author

rpedde commented Jul 20, 2023

I'm clearly not very skilled at openscad and honestly have a hard time just reading it. Well aware this is a mess, but mostly I'm offering it up in the hopes that it encourages someone to try something better. If there is something that might be salvageable here, I'd be willing to clean it up to point that it was acceptable.

Not sure how to do this in a reasonable way that fits to the lip well without someting like f360's loft command.

@Brunius
Copy link

Brunius commented Aug 14, 2023

Thanks for your effort; there's some stuff in there you figured out that I would've looked at and gone "no way am I learning this".

I've had a bit of a go at rewriting your module to be a little prettier; both in terms of output and code (though I will fully admit my code still has a little way to go). My rewrite is below:

module lip_tab(x, y) {

    //Calculate rotation of lip based on which edge it is on
    rot = (x == $gxx) ? 0 : ((x == 0) ? 180 : ((y == $gyy) ? 90 : 270));
    wall_thickness = r_base-r_c2+d_clear*2;

    translate(
        [(x * l_grid) - ((l_grid * $gxx / 2)),
         (y * l_grid) - ((l_grid * $gyy / 2)),
         $dh+h_base]) {
        rotate([0, 0, rot]) 
        translate([-r_base-d_clear,-r_base,0]) {
            //Extrude the wall profile in circle; same as you would at a corner of bin
            //Intersection - limit it to the section where the lip would not interfere with the base
            intersection() {
                translate([wall_thickness, -r_base*1.5, 0]) cube([wall_thickness, r_base*5, (h_lip)*5]);
                translate([0,0,-$dh]) union() {
                    rotate_extrude(angle=90) profile_wall();
                    translate([0, r_base*2, 0]) rotate_extrude(angle=-90) profile_wall();
                }
            }
            //Fill the gap between rotational extrusions (think of it as the gap between bins, if this was multiple bins instead of tabs)
            difference() {
                translate([wall_thickness, 0, -h_lip*0.5]) cube([(r_base-wall_thickness)-r_f1, r_base*2, h_lip*1.5]);
                cylinder(h=h_lip*3, r=r_base-r_f1, center=true);
                translate([0, r_base*2, 0]) cylinder(h=h_lip*3, r=r_base-r_f1, center=true);
            }
        }
    }
}

This resolves some of your magic numbers, and has a smoother outline. I haven't printed any yet (as my printer is in pieces after a move), but as best I can tell it should be fine (tbc when the other half of the boxes arrive)

I can't figure out if there's any way for me to formally add this to the PR; it might be something you simply have to cut + paste to add (or I could make a PR for your repo, merge it there, then it should be added to this PR, I think?)

rpedde added a commit to rpedde/gridfinity-rebuilt-openscad that referenced this pull request Aug 27, 2023
This adds the suggestions made by @Brunius in issue kennetek#122.
@rpedde
Copy link
Contributor Author

rpedde commented Aug 27, 2023

Was out of town for a week, and didn't get a chance until recently to update and print some of these. I updated this pr with your suggestions. I agree, this generates nicer outlines. It doesn't seem to "latch" as nicely as the fusion 360 version does (although I do think this represents a great improvement over stock), and I'm not entirely sure why that is. I'll maybe take a deeper look at that to see what's going on there.

@Brunius: I appreciate the help, and if you want to make a pr to my branch from fc8dc87, I'll can revert this and pull in your commit so that you get correctly identified as the author.

smkent added a commit to smkent/monoscad that referenced this pull request Feb 10, 2024
- No holes by default
- Tab size
- Tab angle
- Bin height half unit increments
- Extra pocket depth
- Stacking tabs by @rpedde:
  kennetek/gridfinity-rebuilt-openscad#122
@Brunius
Copy link

Brunius commented May 22, 2024

I've finally got my printer back together, and been able to print it!

I see what you mean about not latching as nicely - it doesn't take much effort to simply slide it past the notch (if you're not looking for it, you won't notice it).

What do you think the solution would be - enlargen it? Vertically, or horizontally? Or both?

@Brunius
Copy link

Brunius commented May 24, 2024

I've just printed another, with the wall_thickness variable changed to include -r_c1

    wall_thickness = r_base-r_c2+d_clear*2-r_c1;

This works much better, in my opinion, while still staying within the footprint of the wall.

rpedde added a commit to rpedde/gridfinity-rebuilt-openscad that referenced this pull request May 29, 2024
This adds the suggestions made by @Brunius in issue kennetek#122.
This is a bit hacky, but represents a proof of concept for trying to
make the sort of stacking tabs discussed in kennetek#81
This adds the suggestions made by @Brunius in issue kennetek#122.
@rpedde
Copy link
Contributor Author

rpedde commented May 29, 2024

I've rebased this to current. I agree these actually fit a lot better, but there seem to be some artifacts on the top, and the tabs seem to be just a little too tall and too wide. If those were taken care of, I think this would be a winner. I'll mess with it a bit more, although I didn't have luck before trying to determine what the wall widths were, so no promises.

artifacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants